<?php
require_once(dirname(__FILE__)."/../lib/Loader.php");
cload("Smarty.smartyRenderer");
cload("database.dbquery");
cload("requestProcessor");
cload("kinopoisk.kinoPoiskFilm");
cload("kinopoisk.kinopoisk");
cload("kinopoisk.parserKinoPoisk");
cload("kinopoisk.fieldsConvertor");

/**
 * Description of kinopoiskListForm
 *
 * @author Di_Moon
 */
class kinopoiskListForm extends smartyRenderer {
    protected $_dbh;
    protected $_filmid;
    
    function __construct($dbh) {
        parent::__construct();
        $this->_dbh = $dbh;
        $this->_filmid = (int)requestProcessor::getVar("filmid");
        $this->assign("findForm", requestProcessor::getVar("findForm", "show"));
        $this->assign("action", requestProcessor::getVar("action"));
    }
    
    function render() {
        if($this->_filmid==0) {
            // Если нет filmid, то покажем только форму ввода номера фильма из кинопоиска
            $this->assign("findForm", "show");
            $this->assign("editForm", "hide");
        } else {
            // Есть filmid
            $kpFilm = new kinoPoiskFilm($this->_dbh, $this->_filmid);

            // если был action=form - сохраним данные
            if(requestProcessor::getVar("action")=="form") {
                $_post = requestProcessor::post();
                $_post->del("action");
                $_post->del("filmid");
                
                $kpFilm->setElements($_post);
                //_print_r($kpFilm->getElements());
                $kpFilm->save();
            }

            // покажем форму редактирования фильма
            $this->assign("editForm", "show");
            $this->assign("filmid", $this->_filmid);
            
            if($kpFilm->filmPresent()) {
                // Фильм есть в БД
                $this->assign("filmInDatabase", "1");
            } else {
                $this->assign("filmInDatabase", "0");
                
                $kinopoisk = new Kinopoisk($this->_filmid);
                $table = $kinopoisk->parser->parseInfoTable($kinopoisk->parser->getInfoTable());
                $convertor = new fieldsConvertor();
                $table = $convertor->convert($table);
                $table["filmName"] = $kinopoisk->parser->getFilmNameRus();
                $table["filmNameOriginal"] = $kinopoisk->parser->getFilmName();
                $table["actors"] = $kinopoisk->parser->getActorsList();
                $table["actorstrans"] = "n/a";
                $table["rating"] = $kinopoisk->parser->getFilmRating();
                $table["shortDescription"] = $kinopoisk->parser->getFilmDescription();
                $table["longDescription"] = $table["shortDescription"];
                $kpFilm->setElements($table);

            }
            
            // Подготовим данные для шаблона
            $kpTplFilm = array();
                
            foreach($kpFilm->getElements() as $field=>$value) {
                $kpTplFilm[$field] = htmlspecialchars($value);
            }
                
            // _print_r($kpTplFilm);
            $this->assign("kpFilm", $kpTplFilm);
        }
        
        return $this->fetch("kinopoiskListForm.tpl");
    }
}

?>
